/*
 * layui的初始化模块可以理解为，引入这个模块的js文件
 * 值得注意的是：layui的模块之间存在依赖关系，例如引入了table模块，它会layui/lay/moudules/table.js
 * 这个文件引入进来，并且它还会将这个模块所依赖的其他模块自动加入进来，
 * 实际引入的模块有：table、form、jquery、layer、laypage、laytpl、util，7个js文件
 * 所以我仅仅初始化了table模块，却能获得form、jquery、layer的模块对象
 */
//layui初始化表格模组
layui.use([ 'table' ,'laydate'], function() {
	// 获得模块对象
	var table = layui.table;
	var form = layui.form;
	var $ = layui.jquery;
	var layer = layui.layer;
	var laydate=layui.laydate;
	

	// 数据表格渲染
	table.render({
		elem : '#logTable',
		url : 'system/log/logs',
		method : 'get',
		where : {} // 你额外要携带数据，以键值对的方式存入
		//,toolbar : '#logToolbar' // 开启头部工具栏，并为其绑定左侧模板
		,cellMinWidth : 80 // 全局定义所有常规单元格的最小宽度（默认：60）
		,cols:[[
			{type : 'numbers'}, // 序号
			{type : 'checkbox'},//复选框
			{field : 'logId',title : '用户 ID',unresize : true,hide:true},
			{field : 'userId',title : '操作人ID',unresize : true,hide:true},
			{field : 'userName',title : '操作人名',unresize : true},
			{field : 'operateType',title : '操作类型',unresize : true,templet : '#typeboxTpl'},
			{field : 'operateEvent',title : '具体操作',unresize : true},
			{field : 'operateResult',title : '操作结果',unresize : true,templet : '#checkboxTpl'},
			{field : 'operateTime',title : '操作时间',unresize : true, templet: "<div>{{layui.util.toDateString(d.operateTime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
			{field : 'host',title : '主机',unresize : true},
			
		]],
		page : true // 开启分页
		,
		limit : 10 // 每页显示的条数
		,
		limits : [ 1, 5, 10, 20, 50, 100 ] // 每页条数的选择项
		,
		loading : true // 是否显示加载条(切换分页的时候显示）
		,
		title : '取派标准表' // 定义 table 的大标题（在文件导出等地方会用到）
		// ,id: 'logTable' // 设定容器唯一 id
		,
		even : false
	// 隔行变色
	});
	// ---------------------------------
	//时间选择器
	/*laydate.render({
	  elem: '#addlogBirthdate'
	});
	laydate.render({
		  elem: '#addlogHiredate'
		});*/
	
	laydate.render({
	  elem: '#operateTime'
	  ,range: true
	  ,done: function(value, date, endDate){
		  alert(typeof value)
		     //得到日期生成的值，如：2017-08-18
		    console.log(date); //得到日期时间对象：{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
		    console.log(endDate); //得结束的日期时间对象，开启范围选择（range: true）才会返回。对象成员同上。
		  }
	});
	
	 
	//-------------
	// 头部搜素表单提交
	form.on('submit(logSearchBtn)', function(data) {
		/*console.log(data.elem) // 被执行事件的元素DOM对象，一般为button对象
		console.log(data.form) // 被执行提交的form对象，一般在存在form标签时才会返回
		console.log(data.field) // 当前容器的全部表单字段，名值对形式：{name: value}
*/	    var operateTime = $("#operateTime").val();
		var startTime = operateTime.substring(0, 10);
		var endTime = operateTime.substring(13);
		 // 执行后台代码
		// 刷新数据表格
		table.reload('logTable', {
			url : 'system/log/logs',
			where : { // 设定异步数据接口的额外参数，任意设
				//operateTime : $("#operateTime").val(),
				userName : $("#userName").val(),
				operateEvent : $("#operateEvent").val(),
				operateResult : $("#operateResult").val(),
				startTime: new Date(startTime),
				endTime: new Date(endTime)
			},page:{
				curr:1 //从第一页开始
			},limit:10
		});
		return false; // 阻止表单跳转。如果需要表单跳转，去掉这段即可。
	});
	


	// 头工具栏事件
	table.on('toolbar(logTableEvent)', function(obj) {
		// 获取当前表格选中状态和选中的数据
		var checkStatus = table.checkStatus(obj.config.id);
		// 区分点击的按钮
		switch (obj.event) {
		case 'addResource':
			// 弹出新增模态框
			initAddResourceModal();
			break;
		case 'updateResource':
			// 选择的数据数量
			if (checkStatus.data.length > 1) {
				layer.alert('最多也只能选择一行');
			} else if (checkStatus.data.length < 1) {
				layer.alert('最少要选择一行');
			}  else if (checkStatus.data[0].useable=='N') {
				layer.alert('该职员被禁用');
			} 
			else {
				// 弹出修改模态框，传递当前选中的一行数据过去
				initUpdateResourceModal(checkStatus.data[0]);
			}
			break;
		
		}
		;
	});
	// 监听锁定操作
	form.on('switch(useable)', function(obj) {
		frozenORrecoverArchives(obj.value, this.checked == true ? 'Y' : 'N');
	});
	// 关闭模态框 新增和修改模态框共用这个点击事件
	$(".modalClose").click(function() {
		// 关闭页面上所有类型的所有弹框
		layer.closeAll();
	});
	
});
